Q. 이터러블, 이터레이터, 제너레이터에 관해 설명해 주세요.
🧑🏻💻 Answer.
✅ 이터러블
이터러블이란 이터러블 프로토콜을 준수한 객체를 말합니다.
별도로 Symbol.iterator 메소드를 정의해 주거나 프로토타입 상속을 통해서 Symbol.iterator 메소드를 갖고 있다면 이터러블이라고 할 수 있습니다. 이터러블 객체는 for of문으로 순회할 수 있고 스프레드 문법의 피연산자로 사용할 수 있습니다.
✅ 이터레이터
- 이터러블 객체의 Symbol.iterator 메소드를 호출하면 이터레이터 객체를 반환합니다. 반환된 이터레이터는 next 메서드를 소유하고 있으며, next 메서드를 호출할 때 이터레이터 리절트 객체를 반환한다면 이터레이터라고 할 수 있습니다.
✅ 제너레이터
- 제너레이터는 이터러블을 생성하는 함수입니다. 제너레이터 함수를 사용하면 이터레이션 프로토콜을 준수해 이터러블을 생성하는 방식보다 간편하게 이터러블을 구현할 수 있습니다.